Hexo 的 Tex 渲染优化

2022 年 7 月 25 日 星期一(已编辑)
/ ,
24

Hexo 的 Tex 渲染优化

最近想重新把博客开始用起来,于是更新了一下 Hexo 的版本,发现在数学公式的渲染上似乎是有一些问题,顺便记录一下解决方法。可能不会通用,因为我这里使用的主题是 icarus,本身就对数学公式有一定的支持。

解决方法

只需要更换 Hexo 的 markdown 渲染引擎,更换为 hexo-renderer-kramed听说它在默认渲染引擎 hexo-renderer-marked 的基础上修改了一些 bug。

npm uninstall hexo-renderer-marked –save
npm install hexo-renderer-kramed –save
解决语义冲突问题

由于 LaTeX 与 markdown 语法有语义冲突,在 markdown 中,斜体和加粗可以用 * 或者 _ 表示,在这里我们修改变量,将 _ 用于 LaTeX,而使用 * 表示 markdown 中的斜体和加粗。到博客根目录下,找到 node_modules\kramed\lib\rules\inline.js,把第 11 行和第 20 行进行如下修改:

# line 11
-  escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
+  escape: /^\\([`*\[\]()#$+\-.!_>])/
# line 20
-  em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
+  em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/

然后重启 hexo 就行了,记得把主题里的 mathjax 支持设为 true。

# _config.icarus.yml
plugins:
  mathjax: true

参考文档

[1] Icarus用户指南 - 其他插件
[2] Hexo折腾系列(六)数学公式渲染优化
[3] Hexo 下 LaTeX 无法显示的解决方案

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...